Basic techniques for management of finite resources such as bandwidth and buffers in multiple level hierarchical systems such as asynchronous transfer mode ("ATM") networks are generally known. The techniques include provision of sufficient resources to satisfy theoretical maximum demands and allocation of resources based on statistically calculated demands.
Trying to provide sufficient resources for theoretical maximum demands is costly and inefficient. The technique is costly because the hardware which comprises the resources is costly. The technique is inefficient because actual use is typically considerably less than the theoretical maximum, and a portion of the provided resources are thus under-utilized.
On the other hand, allocation of resources at one level of a hierarchical system of resources based upon an expectation of how much resource may be required under some given set of conditions may improve efficiency and reduce the cost of resources. The current state of the art for hierarchical systems must attempt this on the basis of requests specifying either a maximum or a nominal resource requirement. Resources are granted based upon some statistical basis. However, this technique lacks the control and flexibility required to manage the resources in an effective manner at the various levels of the hierarchy. Several unsatisfactory modes of operation are experienced. The resources granted may not be sufficient to satisfy the requirements under all conditions and as a result, the required resources may not be available when needed and data is lost. The granting of excess resources, while aiding in the prevention of data loss, nullifies the cost savings that can be realized. Such systems do not provide a means to manage the hierarchical resources in a dynamic manner to accommodate changing conditions. Furthermore, such systems do not allow for the maintenance of a pool of resources that may be shared in a controlled manner by all of the requesters at the immediately lower level of the hierarchical resources.
The provisioning of resources for hierarchical services under the current state of the art is accomplished by a request from the lower level to the next higher level for a specific amount of resource. The basis of granting this request may be either in terms of a maximum requirement or as a statistical expectation of the resource that will be required. Resources so granted may prove inefficient or may provide unsatisfactory performance. Once granted, however, changes in this assignment of resources may be quite difficult to effect since they will typically involve negotiations and changes to the resources provided by the higher level to the other peer lower level users of the resources.